/**
 * 日期格式化工具函数
 * @param {number|string|Date} date 日期时间戳、字符串或Date对象
 * @param {string} format 格式化模式，如：'YYYY-MM-DD HH:mm:ss'
 * @returns {string} 格式化后的日期字符串
 */
export function formatDate(date, format = 'YYYY-MM-DD') {
  if (!date) return '';

  // 转换为Date对象
  let dateObj;
  if (typeof date === 'number') {
    // 时间戳，处理毫秒和秒的情况
    dateObj = new Date(date * (date.toString().length === 10 ? 1000 : 1));
  } else if (typeof date === 'string') {
    dateObj = new Date(date);
  } else if (date instanceof Date) {
    dateObj = date;
  } else {
    return '';
  }

  // 日期无效时返回空字符串
  if (isNaN(dateObj.getTime())) {
    return '';
  }

  const year = dateObj.getFullYear();
  const month = String(dateObj.getMonth() + 1).padStart(2, '0');
  const day = String(dateObj.getDate()).padStart(2, '0');
  const hours = String(dateObj.getHours()).padStart(2, '0');
  const minutes = String(dateObj.getMinutes()).padStart(2, '0');
  const seconds = String(dateObj.getSeconds()).padStart(2, '0');

  return format
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds);
}

/**
 * 获取当前日期的字符串表示
 * @param {string} format 格式化模式
 * @returns {string} 当前日期的字符串表示
 */
export function getCurrentDate(format = 'YYYY-MM-DD') {
  return formatDate(new Date(), format);
} 